Field
This disclosure relates to firmware updates for devices in a data storage system and a method for updating firmware at preferred times and/or with minimal interruption while providing for rollback of the firmware update if parameter evaluation shows the update was unsuccessful and/or if there was an unexpected performance degradation resulting from the firmware update.
Description of the Related Art
A file system is used to store and organize computer data stored as electronic files. File systems allow files to be found, read, deleted, and otherwise accessed. File systems store files on one or more storage devices. File systems store files on storage media such as hard disk drives, magnetic tape and solid-state storage devices.
Various applications store large numbers of documents, images, audio, videos and other data as objects using a distributed data storage system in which data is replicated and stored in multiple locations for resiliency.
To achieve data distribution and replication with the resulting resiliency, specialized firmware is used on devices in the distributed data storage system. The firmware is updated every so often to achieve certain goals such as improve performance, add new features, enhance existing features and fix bugs, for example. Applying firmware updates to the myriad devices in a distributed data storage system is a complex undertaking. Firmware updates typically have required a system operator or IT manager to spend a great amount of time scheduling and implementing the firmware update.
In some circumstances, the firmware update may have a less than desired or even a negative effect of performance of the distributed data storage system. The same system operator or IT manager that handled the firmware updates installation is typically assigned the task of evaluating the success and/or impact of the firmware updates. It is time consuming and difficult for a system operator to evaluate the effectiveness of a firmware update. This is particularly so when the system operator must evaluate the effectiveness of the firmware update that has been installed on some devices in the distributed data storage system while at the same time continuing to install the firmware update on other devices in the distributed data storage system.
The methods described herein address the issues of managing firmware updates, evaluating the effectiveness of the firmware updates, and determining whether a firmware update should be uninstalled or rolled back.